Flexible IDL compilation for complex communication patterns
نویسندگان
چکیده
Distributed applications are complex by nature, so it is essential that there be effective software development tools to aid in the construction of these programs. Commonplace “middleware” tools, however, often impose a tradeoff between programmer productivity and application performance. For instance, many CORBA IDL compilers generate code that is too slow for high-performance systems. More importantly, these compilers provide inadequate support for sophisticated patterns of communication. We believe that these problems can be overcome, thus making IDL compilers and similar middleware tools useful for a broader range of systems. To this end we have implemented Flick, a flexible and optimizing IDL compiler, and are using it to produce specialized high-performance code for complex distributed applications. Flick can produce specially “decomposed” stubs that encapsulate different aspects of communication in separate functions, thus providing application programmers with fine-grain control over all messages. The design of our decomposed stubs was inspired by the requirements of a particular distributed application called Khazana, and in this paper we describe our experience to date in refitting Khazana with Flick-generated stubs. We believe that the special IDL compilation techniques developed for Khazana will be useful in other applications with similar communication requirements.
منابع مشابه
PLDI ' 97 Flick : A Flexible , Optimizing IDL
Interface deenition language (IDL) compilers generate \stub functions" that provide separate communicating processes with the abstraction of local object invocation or procedure call. Unfortunately, these compilers have not kept pace with recent advances in fast network technologies and component-based software design. Typical IDL compilers do little optimization because they assume that interp...
متن کاملFlexible and Optimized IDL Compilation for Distributed Applications
The author of a distributed system is often faced with a dilemma when writing the system's communication code. If the code is written by hand (e.g., using Active Messages) or partly by hand (e.g., using mpi) then the speed of the application may be maximized, but the human eeort required to implement and maintain the system is greatly increased. On the other hand, if the code is generated using...
متن کاملMockingbird: Flexible Stub Compilation from Pairs of Declarations
Mockingbird is a prototype tool for developing interlanguage and distributed applications. It compiles stubs from pairs of interface declarations, allowing existing data types to be reused on both sides of every interface. Other multilanguage stub compilers impose data types on the application, complicating development. Mockingbird supports C/C++, Java, and CORBA IDL, and can be extended to oth...
متن کاملCommunication in Microkernel-Based Operating Systems
Communication in microkernel-based systems is much more frequent than system calls known from monolithic kernels. This can be attributed to the placement of system services into their own protection domains. Communication has to be fast to avoid unnecessary overhead. Also, communication channels in microkernel-based systems are used for more than just remote procedure calls. In distributed syst...
متن کاملA Web-based Distributed Network Simulation Framework using CORBA IDL-based APIs
Web-based network simulation frameworks are becoming highly portable and extensible. However, they still lack the degree of language and platform independence required for large-scale deployment on the World Wide Web. Our approach to enabling large-scale deployment uses a set of standard CORBA-IDL based programming interfaces, a publisher-subscriber model for communication, and dynamic composit...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Scientific Programming
دوره 7 شماره
صفحات -
تاریخ انتشار 1999